package com.itheima.lambda1;

/**
 * 1.首先存在一个接口（Calculator）
 *
 *     2. 在该接口中存在一个抽象方法（calc），该方法是有参数也有返回值
 *
 *     3. 在测试类（CalculatorDemo）中存在一个方法（useCalculator）
 *
 *         方法的的参数是Calculator类型的
 *
 *         在方法内部调用了Calculator的calc方法
 */
public class CalculatorDemo {
    public static void main(String[] args) {
        //匿名内部类

        useCalculator(new Calculator() {
            @Override
            public int calc(int a, int b) {
                return a+b;
            }
        });
        useCalculator((a, b) -> a+b);
        //lambda
        useCalculator((int a,int b)->{
            return a*b;
        });
    }




    public static void useCalculator(Calculator halder){
        int calc = halder.calc(10, 20);
        System.out.println(calc);

    }

}
interface Calculator{


    int calc(int a,int b);
}